/**
 * 模块化编程: https://www.bilibili.com/video/BV1Mb411e7re?p=13
 *            https://www.bilibili.com/video/BV1Mb411e7re?p=14
 * LCD1602 调试工具
 * 使用"LCD1602液晶屏"作为调试窗口，提供类似printf函数的功能，可实时观察单片机内部数据的变换情况，便于调试和演示。
 * 本视频提供的LCD1602代码属于模块化的代码，使用者只需要知道所提供函数的作用和使用方法就可以很容易的使用LCD1602
 * 
 * 液晶屏 左侧的电位器旋钮, 能调节对比度
 * 将LCD1602插入短的那个排孔
 * 
 * https://www.bilibili.com/video/BV1Mb411e7re?p=31
 * https://www.bilibili.com/video/BV1Mb411e7re?p=32
 */
#include "Link/LCD1602_Utils.h"
#include "Link/Delay_Utils.h"

void main() {
    //1.初始化_lcd1602
    LCD1602_Init(1);
    //2.显示字符
    LCD1602_ShowChar(1, 1, 'A');
    //3.显示字符串
    LCD1602_ShowString(1, 3, "BC");
    //4.显示十进制数字
    LCD1602_ShowNum(1, 6, 123);//显示123
    //5.显示有符号十进制数字
    LCD1602_ShowSignedNum(1, 10, -66);//显示-66
    //6.显示十六进制数字
    LCD1602_ShowHexNum(1, 14, 0xA8, 2);//显示A8
    //7.显示二进制数字
    LCD1602_ShowBinNum(2, 1, 0xAA);//显示10101010
    //float/double
    LCD1602_ShowDouble(2, 10, 0, 3.1415F);

    //根据"CGROM(字模库)", 查找"°", 二进制=1101 1111=0xDF
    LCD1602_ShowChar(2, 17, 0xDF);
    LCD1602_ShowChar(2, 18, 'C');

    //屏幕外, 向左移
    LCD1602_ShowString(1, 17, "Welcome to China!");
    while (1) {
        //屏幕左移1位
        LCD1602_ScreenTranslate(1);
        Delayms(500);
    }
}